﻿//#define _CRT_SECURE_NO_WARNINGS  1
////一定要动手，例子不管多么简单，建议至少自己手敲一遍看看是否理解了里头的细枝末节。
////一定要学会思考，思考为什么要这样，而不是那样。还要举一反三地思考
//#include<string>
//#include<iostream>
//using namespace std;
////创建类模板
//template <class T1,class T2>
//class person {
//public:
//	T1 _name;
//	T2 _age;
//public:
//	person(T1 name, T2 age)
//	{
//		this->_name = name;
//		this->_age = age;
//	}
//	void showperson()
//	{
//		cout << "姓名：" << this->_name << "年龄：" << this->_age << endl;
//	}
//};
////指定参数类型--直接显示对象的数据类型
//void show(person<string, int> p)
//{
//	p.showperson();
//}
//void test()
//{
//	person<string, int> p1("孙悟空", 999);
//	show(p1);
//}
////参数模板化--将对象中的参数作为模板进行传递
//template<class T1>
//void show2(T1 p)
//{
//	p.showperson();
//}
//void test2()
//{
//	person<string, int> p2("猪八戒", 888);
//	show2(p2);
//}
////整个类模板化---将这个对象类型模板化 进行传参
//template <class T>
//void show3(T& p)
//{
//	p.showperson();
//}
//void test3()
//{
//	person<string, int> p3("唐僧", 222);
//	show3(p3);
//
//}
//int main()
//{
//	//test();
//	//test2();
//	test3();
//	system("pause");
//	return  0;
//}